1. Field of the Invention
The present invention relates to a matrix-vector multiplication operation apparatus for multiplying an input vector by a predetermined matrix. The present invention also relates to the subject matter disclosed in U.S. Pat. No. 4,937,776.
2. Description of the Prior Art
A large number of multiplication are required in a matrix operation. It therefore takes a long period of time to perform a matrix operation by a digital computer of a sequential processing system. For example, even if one multiplication requires a very short time of 100 ns, a time of 1 ms is required for a multiplication between matrix having 100 rows and vector having 100 columns.
A pipelined array processor is arranged in a computer which deals with scientific calculations. However, such a matrix-vector calculation is certainly poor in digital computation techniques in general.
There is proposed an optical-based parallel processing matrix-vector calculation apparatus, as shown in FIG. 13. In this apparatus, an input vector is displayed on a one-dimensional LED array 11. Values of the components of the input vector correspond to brightness levels of LEDs 12 constituting the array. Light from each LED 12 is scattered by a columnar lens 13 in one direction, and the scattered light is projected on a mask array 14.
Each mask 15 constituting the mask array 14 corresponds to each component of a matrix used for an operation with an input vector. The area of a light transmission opening of each mask corresponds to the value of each component. Light passing through the mask array 14 is focused by a columnar lens 16 aligned in a direction perpendicular to that of the columnar lens 13 and is incident on a photosensor array 17.
An input vector is multiplied with a row or column of a matrix by means of input vector radiant from the LED array 11 and light transmission factors of the mask array 14. A partial sum of products in units of rows or columns can be obtained upon detection of light by photosensors 18 constituting the photosensor array 17. Therefore, an output from each photosensor 18 represents a component of an output vector.
When the number of matrix components is increased, a distance between the columnar 13 and the mask array 14 and a distance between the columnar lens 16 and the mask array 14 must be increased due to increase of optical channels. However, when the distances are increased, crosstalk occurs in components of the input and output vectors.
For this reason, the mask array 14 is often constituted by a spatial light modulation device so as to dynamically change a light transmittance of each mask 15 during the operation, i.e., so as to reduce optical channels with time-divisional matrix-vector operation.
In the operation apparatus shown in FIG. 13, the light transmission opening amount (area) or transparency of each mask 15 constituting the mask array 14 represents a component value of the matrix. Therefore, operation precision is limited by geometric precision of the mask 15. More specifically, the dynamic range of the matrix components serving as operands is very narrow, and an S/N ratio of the operation results is very low, thus degrading the precision.
When a spatial light modulation device is used, it takes a period of time on the order of ms to drive the spatial light modulation device. In addition, an input vector display and calculations for the sum of products must be performed every modulation cycle. In the conventional arrangement shown in FIG. 13, the matrix operation is not always performed at high speed although optical parallel processing is executed.
Furthermore, structures such as a control circuit is required for the spatial light modulation device, and the device cannot be easily made compact.